Sơ đồ Trao đổi khóa Diffie-Hellman

Trong giao thức này, hai bên trao đổi khóa là Alice và Bob. Kẻ nghe lén Eve có thể quan sát được thông tin truyền giữa Alice và Bob nhưng không thay đổi nội dung thông tin (tấn công bị động). Sơ đồ sau đây tóm tắt mỗi người biết gì trong mô hình của giao thức.

  • Đặt s = khóa bí mật được chia sẻ. s = 2
  • Đặt g = căn nguyên thủy công khai. g = 5
  • Đặt p = số nguyên tố công khai. p = 23
  • Đặt a = khóa riêng tư của Alice. a = 6
  • Đặt A = khóa công khai của Alice. A = ga mod p = 8
  • Đặt b = khóa riêng tư của Bob. b = 15
  • Đặt B = khóa công khai của Bob. B = gb mod p = 19
Alice
biếtkhông biết
p = 23b = ?
base g = 5
a = 6
A = 56 mod 23 = 8
B = 5b mod 23 = 19
s = 196 mod 23 = 2
s = 8b mod 23 = 2
s = 196 mod 23 = 8b mod 23
s = 2
Bob
biếtkhông biết
p = 23a = ?
base g = 5
b = 15
B = 515 mod 23 = 19
A = 5a mod 23 = 8
s = 815 mod 23 = 2
s = 19a mod 23 = 2
s = 815 mod 23 = 19a mod 23
s = 2
Eve
biếtkhông biết
p = 23a = ?
base g = 5b = ?
s = ?
A = 5a mod 23 = 8
B = 5b mod 23 = 19
s = 19a mod 23
s = 8b mod 23
s = 19a mod 23 = 8b mod 23

Lưu ý: Việc Bob giải được khóa riêng tư của Alice, và Alice giải được khóa riêng tư của Alice phải là bài toán khó đối với cả hai. Nếu bài toán tìm khóa riêng tư của Bob không khó đối với Alice (hoặc ngược lại), thì Eve chỉ cần thay thế cặp khóa riêng tư / công khai của mình, gắn khóa công khai của Bob vào khóa riêng tư của mình, tạo ra khóa bí mật chia sẻ giả, và giải ra khóa riêng tư của Bob, sau đó sử dụng nó để tìm ra khóa bí mật chia sẻ giữa Bob và Alice. Eve cũng có thể tìm cách chọn cặp khóa công khai / riêng tư nào đó giúp Eve giải được khóa riêng tư của Bob một cách dễ dàng.

Có thể tham khảo một demo về giao thức Diffie-Hellman (sử dụng các số nhỏ) ở đây

Tài liệu tham khảo

WikiPedia: Trao đổi khóa Diffie-Hellman http://www.cacr.math.uwaterloo.ca/hac/ http://cryptocellar.web.cern.ch/cryptocellar/cesg/... http://cryptocellar.web.cern.ch/cryptocellar/cesg/... http://code.google.com/p/sacct/ http://docs.google.com/viewer?a=v&pid=sites&srcid=... http://video.google.com/videoplay?docid=8991737124... http://www.google.com/patents?vid=4.2 http://www.google.com/patents?vid=4200770 http://www.jya.com/ellisdoc.htm http://www.rsasecurity.com/rsalabs/node.asp?id=230...